package com.xydtech.ecard.merchant.service;

import com.alibaba.fastjson.JSONObject;
import com.xydtech.ecard.merchant.domain.*;

import java.util.List;

/**
 * 电子名片企业信息图表统计Service接口
 *
 * @author yuzhiguo
 * @date 2024-09-09 下午2:39
 */
public interface IEcardBranchEnterpriseChartService {

    /**
     * 本人企业信息建档拜访统计数据
     * @param userId
     * @return
     */
    JSONObject getEntFilingVisitsStatistics(Long userId);

    /**
     * 本人楼宇建档数量
     * @param userId
     * @return
     */
    JSONObject getEntLocationFilings(Long userId);

    /**
     * 全行企业建档拜访数量
     * @param deptId
     * @return
     */
    JSONObject getEntAllFilingVisitsNums(Long deptId);

    /**
     * 全行楼宇建档数量
     * @param deptId
     * @return
     */
    JSONObject getEntAllLocationFilings(Long deptId);

    /**
     * 企业超时拜访数量
     * @param deptId
     * @return
     */
    JSONObject getEntTimeoutVisitsNums(Long deptId);

    /**
     * 查询企业信息建档折线图数据
     * @param deptId
     * @return
     */
    List<EcardBranchEcardChart> getEntFilingLineChart(Long deptId);

    /**
     * 查询企业信息建档折线图数据（小程序接口）
     * @param deptId
     * @return
     */
    List<EcardBranchEcardChart> getEntFilingLineChartByApplet(Long deptId);

    /**
     * 查询企业信息拜访折线图数据
     * @param deptId
     * @return
     */
    List<EcardBranchEcardChart> getEntVisitLineChart(Long deptId);

    /**
     * 查询企业信息拜访柱状图数据接口（小程序接口）
     * @param deptId
     * @return
     */
    List<EcardBranchEcardChart> getEntVisitLineChartByApplet(Long deptId);

    /**
     * 机构企业建档排名
     * @param ecardBranchDeptFiling
     * @return
     */
    List<EcardBranchDeptFiling> getEntDeptFilingList(EcardBranchDeptFiling ecardBranchDeptFiling);

    /**
     * 机构企业拜访次数排名
     * @param ecardBranchDeptVisit
     * @return
     */
    List<EcardBranchDeptVisit> getEntDeptVisitsList(EcardBranchDeptVisit ecardBranchDeptVisit);

    /**
     * 机构超时拜访次数排名
     * @param ecardBranchDeptDoTask
     * @return
     */
    List<EcardBranchDeptDoTask> getEntDeptDoTaskList(EcardBranchDeptDoTask ecardBranchDeptDoTask);

    /**
     * 机构超时未拜访次数排名
     * @param ecardBranchDeptUndoTask
     * @return
     */
    List<EcardBranchDeptUndoTask> getEntDeptUnDoTaskList(EcardBranchDeptUndoTask ecardBranchDeptUndoTask);

    /**
     * 营销人员企业建档排名
     * @param ecardBranchUserFiling
     * @return
     */
    List<EcardBranchUserFiling> getEntUserFilingList(EcardBranchUserFiling ecardBranchUserFiling);

    /**
     * 营销人员企业拜访次数排名
     * @param ecardBranchUserVisit
     * @return
     */
    List<EcardBranchUserVisit> getEntUserVisitsList(EcardBranchUserVisit ecardBranchUserVisit);

    /**
     * 营销人员企业超时拜访次数排名
     * @param ecardBranchUserDoTask
     * @return
     */
    List<EcardBranchUserDoTask> getEntUserDoTaskList(EcardBranchUserDoTask ecardBranchUserDoTask);

    /**
     * 营销人员企业超时未拜访次数排名
     * @param ecardBranchUserUndoTask
     * @return
     */
    List<EcardBranchUserUndoTask> getEntUserUnDoTaskList(EcardBranchUserUndoTask ecardBranchUserUndoTask);
}
